/*
		字符串函数strcat的使用以及模拟实现

		夏思成

		2024年3月28日

		西科大15号公寓楼
*/



////strcat函数的使用
//
//int main()
//{
//	char arr1[20] = "abcdef";//目标字符串
//	char arr2[] = "ghi";//来源字符串
//
//	char* ret = strcat(arr1, arr2);
//	
//	printf("%s\n", ret);
//	return 0;
//}




////验证字符串是否可以给自己追加
//int main()
//{
//	char arr1[30] = "abcdefghijklmn";//目标字符串也是来源字符串
//
//	char* ret = strcat(arr1, arr1);
//
//	printf("%s\n", ret);
//	return 0;
//}



//模拟实现strcat函数

#include <stdio.h>
#include <string.h>
#include <assert.h>

char* my_strcat(char* destination, const char* source)
{
	assert(destination && source);//判断所传两指针是否为NULL

	char* ret = destination;//将目标字符串的首地址储存起来

	//找到目标字符串中第一次出现\0的位置
	while (*destination)
	{
		destination++;
	}

	//从该位置开始，将源字符串追加到目标字符串
	while (*destination++ = *source++)
	{
		;
	}

	return ret;
}

int main()
{
	char arr1[30] = "abcdef";//目标字符串
	char arr2[] = "ghijk";//源字符串

	char * ret = my_strcat(arr1, arr2);

	printf("%s\n", ret);
	return 0;
}